home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 1).iso / 1271 / modem.frm < prev    next >
Text File  |  1997-03-18  |  13KB  |  564 lines

  1. VERSION 2.00
  2. Begin Form MODEM 
  3.    AutoRedraw      =   -1  'True
  4.    BorderStyle     =   3  'Fixed Double
  5.    Caption         =   "MODEM"
  6.    ClientHeight    =   5595
  7.    ClientLeft      =   1890
  8.    ClientTop       =   2445
  9.    ClientWidth     =   8565
  10.    FontBold        =   0   'False
  11.    FontItalic      =   0   'False
  12.    FontName        =   "Courier New"
  13.    FontSize        =   8.25
  14.    FontStrikethru  =   0   'False
  15.    FontUnderline   =   0   'False
  16.    Height          =   6285
  17.    Left            =   1830
  18.    LinkTopic       =   "Form1"
  19.    ScaleHeight     =   5595
  20.    ScaleWidth      =   8565
  21.    Top             =   1815
  22.    Width           =   8685
  23.    Begin Timer Timer1 
  24.       Interval        =   125
  25.       Left            =   360
  26.       Top             =   240
  27.    End
  28.    Begin Menu menuLine 
  29.       Caption         =   "Line"
  30.       Begin Menu menuExit 
  31.          Caption         =   "Exit"
  32.       End
  33.       Begin Menu menuOnLine 
  34.          Caption         =   "OnLine"
  35.       End
  36.       Begin Menu menuOffLine 
  37.          Caption         =   "OffLine"
  38.          Enabled         =   0   'False
  39.       End
  40.    End
  41.    Begin Menu menuChange 
  42.       Caption         =   "Change"
  43.       Begin Menu menuPort 
  44.          Caption         =   "Port"
  45.          Begin Menu menuCOM1 
  46.             Caption         =   "COM1"
  47.             Checked         =   -1  'True
  48.          End
  49.          Begin Menu menuCOM2 
  50.             Caption         =   "COM2"
  51.          End
  52.          Begin Menu menuCOM3 
  53.             Caption         =   "COM3"
  54.          End
  55.          Begin Menu menuCOM4 
  56.             Caption         =   "COM4"
  57.          End
  58.       End
  59.       Begin Menu menuBaud 
  60.          Caption         =   "Baud"
  61.          Begin Menu menu110 
  62.             Caption         =   "110"
  63.          End
  64.          Begin Menu menu300 
  65.             Caption         =   "300"
  66.          End
  67.          Begin Menu menu1200 
  68.             Caption         =   "1200"
  69.          End
  70.          Begin Menu menu2400 
  71.             Caption         =   "2400"
  72.          End
  73.          Begin Menu menu4800 
  74.             Caption         =   "4800"
  75.          End
  76.          Begin Menu menu9600 
  77.             Caption         =   "9600"
  78.          End
  79.          Begin Menu menu19200 
  80.             Caption         =   "19200"
  81.             Checked         =   -1  'True
  82.          End
  83.          Begin Menu menu38400 
  84.             Caption         =   "38400"
  85.          End
  86.          Begin Menu menu57600 
  87.             Caption         =   "57600"
  88.          End
  89.       End
  90.       Begin Menu menuParity 
  91.          Caption         =   "Parity"
  92.          Begin Menu menuNone 
  93.             Caption         =   "None"
  94.             Checked         =   -1  'True
  95.          End
  96.          Begin Menu menuEven 
  97.             Caption         =   "Even"
  98.          End
  99.          Begin Menu menuOdd 
  100.             Caption         =   "Odd"
  101.          End
  102.       End
  103.       Begin Menu menuDataBits 
  104.          Caption         =   "DataBits"
  105.          Begin Menu menuSeven 
  106.             Caption         =   "Seven"
  107.          End
  108.          Begin Menu menuEight 
  109.             Caption         =   "Eight"
  110.             Checked         =   -1  'True
  111.          End
  112.       End
  113.       Begin Menu menuStopBits 
  114.          Caption         =   "StopBits"
  115.          Begin Menu menuOne 
  116.             Caption         =   "One"
  117.             Checked         =   -1  'True
  118.          End
  119.          Begin Menu menuTwo 
  120.             Caption         =   "Two"
  121.          End
  122.       End
  123.    End
  124.    Begin Menu menuStatus 
  125.       Caption         =   "Status"
  126.       Enabled         =   0   'False
  127.    End
  128.    Begin Menu menuControl 
  129.       Caption         =   "Control"
  130.       Enabled         =   0   'False
  131.       Begin Menu menuDTR 
  132.          Caption         =   "DTR"
  133.          Begin Menu menuSetDTR 
  134.             Caption         =   "Set"
  135.             Checked         =   -1  'True
  136.             Enabled         =   0   'False
  137.          End
  138.          Begin Menu menuClearDTR 
  139.             Caption         =   "Clear"
  140.          End
  141.       End
  142.       Begin Menu menuRTS 
  143.          Caption         =   "RTS"
  144.          Begin Menu menuSetRTS 
  145.             Caption         =   "Set"
  146.             Checked         =   -1  'True
  147.             Enabled         =   0   'False
  148.          End
  149.          Begin Menu menuClearRTS 
  150.             Caption         =   "Clear"
  151.          End
  152.       End
  153.    End
  154.    Begin Menu menuFlow 
  155.       Caption         =   "Flow_Control"
  156.       Enabled         =   0   'False
  157.       Begin Menu menuHardware 
  158.          Caption         =   "Hardware"
  159.       End
  160.       Begin Menu menuSoftware 
  161.          Caption         =   "Software"
  162.       End
  163.       Begin Menu menuNoFlow 
  164.          Caption         =   "NONE"
  165.          Checked         =   -1  'True
  166.       End
  167.    End
  168.    Begin Menu menuDebug 
  169.       Caption         =   "DEBUG"
  170.    End
  171. End
  172. ' MODEM.BAS
  173.  
  174. Option Explicit
  175.  
  176. Sub Form_KeyPress (KeyAscii As Integer)
  177.     Dim Code As Integer
  178.     '''MODEM.Print "["; Hex$(KeyAscii); "]";
  179.     If KeyAscii <> 10 Then
  180.       Code = SioPutc(ThePort, KeyAscii)
  181.     End If
  182. End Sub
  183.  
  184. Sub Form_Load ()
  185.     Dim Row As Integer
  186.     DataFlag = 0
  187.     ParityText(0) = "N"
  188.     ParityText(1) = "O"
  189.     ParityText(2) = "E"
  190.     ParityText(3) = "M"
  191.     ParityText(4) = "S"
  192.     BaudRateTable(0) = "110"
  193.     BaudRateTable(1) = "300"
  194.     BaudRateTable(2) = "1200"
  195.     BaudRateTable(3) = "2400"
  196.     BaudRateTable(4) = "4800"
  197.     BaudRateTable(5) = "9600"
  198.     BaudRateTable(6) = "19200"
  199.     BaudRateTable(7) = "38400"
  200.     BaudRateTable(8) = "57600"
  201.     FatalFlag = 0
  202.     ThePort = COM1
  203.     TheBaudCode = Baud19200
  204.     TheDataBits = WordLength8
  205.     TheStopBits = OneStopBit
  206.     TheParity = NoParity
  207.     OnLineFlag = 0
  208.     Call ShowConfig
  209.     Call DisplayInit(MODEM)
  210. End Sub
  211.  
  212. Sub menu110_Click ()
  213.   Call UncheckBaudRate
  214.   menu110.Checked = True
  215.   TheBaudCode = Baud110
  216.   Call SetBaud
  217.   Call ShowConfig
  218. End Sub
  219.  
  220. Sub menu1200_Click ()
  221.   Call UncheckBaudRate
  222.   menu1200.Checked = True
  223.   TheBaudCode = Baud1200
  224.   Call SetBaud
  225.   Call ShowConfig
  226. End Sub
  227.  
  228. Sub menu19200_Click ()
  229.   Call UncheckBaudRate
  230.   menu19200.Checked = True
  231.   TheBaudCode = Baud19200
  232.   Call SetBaud
  233.   Call ShowConfig
  234. End Sub
  235.  
  236. Sub menu2400_Click ()
  237.   Call UncheckBaudRate
  238.   menu2400.Checked = True
  239.   TheBaudCode = Baud2400
  240.   Call SetBaud
  241.   Call ShowConfig
  242. End Sub
  243.  
  244. Sub menu300_Click ()
  245.   Call UncheckBaudRate
  246.   menu300.Checked = True
  247.   TheBaudCode = Baud300
  248.   Call SetBaud
  249.   Call ShowConfig
  250. End Sub
  251.  
  252. Sub menu38400_Click ()
  253.   Call UncheckBaudRate
  254.   menu38400.Checked = True
  255.   TheBaudCode = Baud38400
  256.   Call SetBaud
  257.   Call ShowConfig
  258. End Sub
  259.  
  260. Sub menu4800_Click ()
  261.   Call UncheckBaudRate
  262.   menu4800.Checked = True
  263.   TheBaudCode = Baud4800
  264.   Call SetBaud
  265.   Call ShowConfig
  266. End Sub
  267.  
  268. Sub menu57600_Click ()
  269.   Call UncheckBaudRate
  270.   menu57600.Checked = True
  271.   TheBaudCode = Baud57600
  272.   Call SetBaud
  273.   Call ShowConfig
  274. End Sub
  275.  
  276. Sub menu9600_Click ()
  277.   Call UncheckBaudRate
  278.   menu9600.Checked = True
  279.   TheBaudCode = Baud9600
  280.   Call SetBaud
  281.   Call ShowConfig
  282. End Sub
  283.  
  284. Sub menuClearDTR_Click ()
  285.   Dim Code As Integer
  286.   'clear DTR
  287.   Code = SioDTR(ThePort, Asc("C"))
  288.   menuSetDTR.Checked = False
  289.   menuClearDTR.Checked = True
  290.   menuSetDTR.Enabled = True
  291.   menuClearDTR.Enabled = False
  292. End Sub
  293.  
  294. Sub menuClearRTS_Click ()
  295.   Dim Code As Integer
  296.   'clear RTS
  297.   Code = SioRTS(ThePort, Asc("C"))
  298.   menuSetRTS.Checked = False
  299.   menuClearRTS.Checked = True
  300.   menuSetRTS.Enabled = True
  301.   menuClearRTS.Enabled = False
  302. End Sub
  303.  
  304. Sub menuCOM1_Click ()
  305.   Call UncheckComPorts
  306.   menuCOM1.Checked = True
  307.   ThePort = COM1
  308.   Call ShowConfig
  309. End Sub
  310.  
  311. Sub menuCOM2_Click ()
  312.   Call UncheckComPorts
  313.   menuCOM2.Checked = True
  314.   ThePort = COM2
  315.   Call ShowConfig
  316. End Sub
  317.  
  318. Sub menuCOM3_Click ()
  319.   Call UncheckComPorts
  320.   menuCOM3.Checked = True
  321.   ThePort = COM3
  322.   Call ShowConfig
  323. End Sub
  324.  
  325. Sub menuCOM4_Click ()
  326.   Call UncheckComPorts
  327.   menuCOM4.Checked = True
  328.   ThePort = COM4
  329.   Call ShowConfig
  330. End Sub
  331.  
  332. Sub menuData_Click ()
  333. DataFlag = 1 - DataFlag
  334. End Sub
  335.  
  336. Sub menuDebug_Click ()
  337. Dim I, Code As Integer
  338. Dim S As String
  339. 'send alphabet 10 times
  340. S = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + Chr$(13) + Chr$(10)
  341. For I = 1 To 10
  342.   Code = SioPuts(ThePort, S, 28)
  343. Next I
  344. End Sub
  345.  
  346. Sub menuEight_Click ()
  347.   Call UncheckDataBits
  348.   menuEight.Checked = True
  349.   TheDataBits = WordLength8
  350.   Call ShowConfig
  351. End Sub
  352.  
  353. Sub menuEven_Click ()
  354.   Call UncheckParity
  355.   menuEven.Checked = True
  356.   TheParity = EvenParity
  357.   Call ShowConfig
  358. End Sub
  359.  
  360. Sub menuExit_Click ()
  361.   Call GoOffLine
  362.   End
  363. End Sub
  364.  
  365. Sub menuHardware_Click ()
  366. Dim Code As Integer
  367. Code = SioFlow(ThePort, Asc("H"))
  368. Call DisplayLine(MODEM, "[Hardware flow control enabled]")
  369. menuHardware.Checked = True
  370. menuSoftware.Checked = False
  371. menuNoflow.Checked = False
  372. End Sub
  373.  
  374. Sub menuNoFlow_Click ()
  375. Dim Code As Integer
  376. Code = SioFlow(ThePort, Asc("N"))
  377. Call DisplayLine(MODEM, "[Flow control disabled]")
  378. menuHardware.Checked = False
  379. menuSoftware.Checked = False
  380. menuNoflow.Checked = True
  381. End Sub
  382.  
  383. Sub menuNone_Click ()
  384.   Call UncheckParity
  385.   menuNone.Checked = True
  386.   TheParity = NoParity
  387.   Call ShowConfig
  388. End Sub
  389.  
  390. Sub menuOdd_Click ()
  391.   Call UncheckDataBits
  392.   menuOdd.Checked = True
  393.   TheParity = OddParity
  394.   Call ShowConfig
  395. End Sub
  396.  
  397. Sub menuOffLine_Click ()
  398.   '''menuChange.Enabled = True
  399.   menuOffline.Enabled = False
  400.   menuOnline.Enabled = True
  401.   Call GoOffLine
  402.   Call ShowConfig
  403. End Sub
  404.  
  405. Sub menuOne_Click ()
  406.   Call UncheckStopBits
  407.   menuOne.Checked = True
  408.   TheStopBits = OneStopBit
  409.   Call ShowConfig
  410. End Sub
  411.  
  412. Sub menuOnLine_Click ()
  413.   menuOffline.Enabled = True
  414.   menuOnline.Enabled = False
  415.   Call DisplayInit(MODEM)
  416.   Call GoOnLine
  417.   Call ShowConfig
  418. End Sub
  419.  
  420. Sub menuSet_Click ()
  421. End Sub
  422.  
  423. Sub menuSetDTR_Click ()
  424.   Dim Code As Integer
  425.   If OnLineFlag = 0 Then
  426.     Call DisplayLine(MODEM, "[Not online!]")
  427.     Exit Sub
  428.   End If
  429.   'set DTR
  430.   Code = SioDTR(ThePort, Asc("S"))
  431.   menuSetDTR.Checked = True
  432.   menuClearDTR.Checked = False
  433.   menuSetDTR.Enabled = False
  434.   menuClearDTR.Enabled = True
  435. End Sub
  436.  
  437. Sub menuSetRTS_Click ()
  438.   Dim Code As Integer
  439.   'set DTR
  440.   Code = SioRTS(ThePort, Asc("S"))
  441.   menuSetRTS.Checked = True
  442.   menuClearRTS.Checked = False
  443.   menuSetRTS.Enabled = False
  444.   menuClearRTS.Enabled = True
  445. End Sub
  446.  
  447. Sub menuSeven_Click ()
  448.   Call UncheckDataBits
  449.   menuSeven.Checked = True
  450.   TheDataBits = WordLength7
  451.   Call ShowConfig
  452. End Sub
  453.  
  454. Sub menuSoftware_Click ()
  455. Dim Code As Integer
  456. Code = SioFlow(ThePort, Asc("S"))
  457. Call DisplayLine(MODEM, "[Software flow control enabled]")
  458. menuHardware.Checked = False
  459. menuSoftware.Checked = True
  460. menuNoflow.Checked = False
  461. End Sub
  462.  
  463. Sub menuStatus_Click ()
  464. Dim S As String
  465. Dim N As Integer
  466. N = SioStatus(ThePort, &HFFFF)
  467. 'framing error ?
  468. If (WSC_FRAME And N) > 0 Then
  469.   Call DisplayLine(MODEM, "[Framing error]")
  470. End If
  471. 'overrun error ?
  472. If (WSC_OVERRUN And N) > 0 Then
  473.   Call DisplayLine(MODEM, "[Data overrun error]")
  474. End If
  475. 'parity error ?
  476. If (WSC_PARITY And N) > 0 Then
  477.   Call DisplayLine(MODEM, "[Data parity error]")
  478. End If
  479. 'RX overflow
  480. If (WSC_RXOVER And N) > 0 Then
  481.   Call DisplayLine(MODEM, "[Receive queue overflow]")
  482. End If
  483. 'TX overflow
  484. If (WSC_TXFULL And N) > 0 Then
  485.   Call DisplayLine(MODEM, "[Transmit queue overflow]")
  486. End If
  487. 'Show TX & RX queue sizes
  488. S = "[RX queue size =" + Str$(SioRxQue(ThePort))
  489. S = S + ", TX queue size =" + Str$(SioTxQue(ThePort)) + "]"
  490. Call DisplayLine(MODEM, S)
  491. 'BREAK signal status
  492. If SioBrkSig(ThePort, Asc("D")) > 0 Then
  493.   Call DisplayLine(MODEM, "[BREAK detected]")
  494. End If
  495. 'DSR status
  496. If SioDSR(ThePort) > 0 Then
  497.   Call DisplayLine(MODEM, "[DSR = 1]")
  498. Else
  499.   Call DisplayLine(MODEM, "[DSR = 0]")
  500. End If
  501. 'CTS status
  502. If SioCTS(ThePort) > 0 Then
  503.   Call DisplayLine(MODEM, "[CTS = 1]")
  504. Else
  505.   Call DisplayLine(MODEM, "[CTS = 0]")
  506. End If
  507. End Sub
  508.  
  509. Sub menuTwo_Click ()
  510.   Call UncheckStopBits
  511.   menuTwo.Checked = True
  512.   TheStopBits = TwoStopBits
  513.   Call ShowConfig
  514. End Sub
  515.  
  516. Sub Timer1_Timer ()
  517.   If OnLineFlag Then
  518.     'get incoming serial data
  519.     Call GetIncoming
  520.   End If
  521. End Sub
  522.  
  523. Sub UncheckBaudRate ()
  524. 'uncheck all baud rates
  525. menu110.Checked = False
  526. menu300.Checked = False
  527. menu1200.Checked = False
  528. menu2400.Checked = False
  529. menu4800.Checked = False
  530. menu9600.Checked = False
  531. menu19200.Checked = False
  532. menu38400.Checked = False
  533. menu57600.Checked = False
  534. End Sub
  535.  
  536. Sub UncheckComPorts ()
  537. 'uncheck all COM ports
  538. menuCOM1.Checked = False
  539. menuCOM2.Checked = False
  540. menuCOM3.Checked = False
  541. menuCOM4.Checked = False
  542. End Sub
  543.  
  544. Sub UncheckDataBits ()
  545. 'uncheck data bits
  546. menuSeven.Checked = False
  547. menuEight.Checked = False
  548. End Sub
  549.  
  550. Sub UncheckParity ()
  551. 'uncheck parity
  552. menuOdd.Checked = False
  553. menuEven.Checked = False
  554. menuTwo.Checked = False
  555.  
  556. End Sub
  557.  
  558. Sub UncheckStopBits ()
  559. 'uncheck stop bits
  560. menuOne.Checked = False
  561. menuNone.Checked = False
  562. End Sub
  563.  
  564.